interface AjaxConfig {
    method: string;
    url: string,
    async?: boolean
}

// function axios(options:AjaxConfig):any {
//     return new Promise((resolve, reject) => {

//     })
// }


// axios({
//     url: '',
//     method: ''
// })

// function getConfig(obj:{url:string, method:string}):AjaxConfig {
//     return {
//         method: obj.method,
//         url: obj.url
//     }
// }

// console.log(getConfig({url:'url', method:'get'}));
// 函数参数也可以使用可选参数 但是必须使用在参数的最后面
// function fun(num1:number, num2:number = 0, num3?:number):void {
//     // return num1 + num2 + num3
//     console.log(num3);
    
// }

// fun(1, 2, 3)

// let fun = function(name:string, sex:string):void {

// }

// fun('张三', '男')
interface FunConfig {
    (method:string, url:string):void
}

let fun:FunConfig

fun = function(method:string, url:string):void {
    console.log(method, url);
    
}

fun('get', 'url')